package ar.com.muebleria.util;

import javax.swing.JInternalFrame;

import ar.com.muebleria.controller.InterfaceVista;

public class BeanFactory extends Reflection {

	public BeanFactory(String parClassName)
			throws Exception {
		super(parClassName);
	}
	
	public static JInternalFrame getInstancia(String nombreClase, Object[] obj) throws Exception{
		BeanFactory factory = new BeanFactory(nombreClase);
		
		factory.newInstance(obj);
		Object newObj = factory.getInstancia();
		
		if (newObj instanceof JInternalFrame)
			return (JInternalFrame)newObj;
		else
			throw new Exception("La clase "+nombreClase+" no es del tipo JInternalFrame");
	}
	
	public static JInternalFrame getInstancia(String nombreClase) throws Exception{
		BeanFactory factory = new BeanFactory(nombreClase);
		InterfaceVista aux;
		factory.newInstance();
		Object newObj = factory.getInstancia();
		
		if (newObj instanceof InterfaceVista)
			aux = (InterfaceVista)newObj;
		else
			throw new Exception("La clase "+nombreClase+" no es del tipo InterfaceVista");
		
		return aux.getVista();
	}
}
